/**
 * 代码中的类名、方法名、参数名已经指定，请勿修改，直接返回方法规定的值即可
 *
 * 
 * @param number long长整型 
 * @return long长整型
 */
 function cutRope( number ) {
  // write code here
  if(number <= 3) return number-1  // 如果当前的数字小于3 就返回当前数字-1
  var rope  = Math.floor(number / 3) - 1 // 获得此时rope的大小 就是现在的数字是3的多少倍-1
  var last = number % 3 // 获得余数的大小
  var res = 1 // 初始化结果的大小
  for(let i = 3;rope !== 0; rope = Math.floor(rope / 2)){
    if(rope % 2 === 1){
      res = res * i % 998244353 // 如果res 是奇数 就让res 多乘一次i 
    } 
    i = i * i % 998244353 // 否则扔i = i*i
  }
  // 退出循环后的res 是 3的a-1次方
  if(last===0){
    res = res * 3 % 998244353 
  }else if(last===1){
    res = res * 4 % 998244353
  }else{
    res = res * 6 % 998244353
  }
  return res
}

module.exports = {
  cutRope : cutRope
};